package cn.xllyd.doc;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.math.BigDecimal;
import java.util.Date;

// 标识当前doc对象的索引库名称和类型名称 /pethome/_doc/1
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(indexName = "order", type = "_doc")
public class OrderDoc {
//    private long id;
//    private String name;
//    private String gradeName;

    /**
     * 主键
     */
    @Id // 标识文档的ID，跟你数据中的id字段值保持一致
    private Long id;
    /**
     * 订单号
     */
    @Field(type = FieldType.Keyword)
    private String orderNum;
    /**
     * 下单人 指定映射类型，如果要分词还可以指定分词器
     */
    @Field(type = FieldType.Text, analyzer = "ik_max_word", searchAnalyzer = "ik_max_word")
    private String orderOwer;
    /**
     * 下单人联系方式
     */
    @Field(type = FieldType.Keyword)
    private String orerOwerContact;
    /**
     * 下单地址
     */
    @Field(type = FieldType.Keyword)
    private String orderOwerAddress;
    /**
     * 订单总重
     */
    @Field(type = FieldType.Double)
    private BigDecimal orderWeight;
    /**
     * 距离
     */
    @Field(type = FieldType.Long)
    private Long oederDistant;
    /**
     * 订单总价
     */
    @Field(type = FieldType.Double)
    private BigDecimal orderCurrency;
    /**
     * 创建时间
     */
    @Field(type = FieldType.Date)
    private Date orderCreate;
    /**
     * 1-等待发货 2-运输中 3-已完成
     * 未发布6，未付预付款7、已发布1、已接单0、运输中2、已到达3、已完成4、取消5
     */
    @Field(type = FieldType.Integer)
    private Integer orderStatus;
    /**
     * 车辆ID
     */
    @Field(type = FieldType.Integer)
    private Integer vehicleId;
    /**
     * 线路ID
     */
    @Field(type = FieldType.Integer)
    private Integer routeId;
    /**
     * 收货人
     */
    @Field(type = FieldType.Keyword)
    private String cneeOwer;
    /**
     * 收货人联系电话
     */
    @Field(type = FieldType.Keyword)
    private String cneePhone;
    /**
     * 收货人地址
     */
    @Field(type = FieldType.Keyword)
    private String cneeAddress;
}
